import os
from PIL import Image
import pickle,glob
import binascii
import struct


from PIL import Image

list =[]  #读取图片数据列表
address_list=[] #保存所有图片的地址
Array=0

#定义文件格式 0 RGBA
#定义文件格式 1 RGB
File_Format =0




#生成bin文件
bin_name ='./UI.bin'
#im = Image.open("01\80.pAA.png")

im = Image.open("./w1.png")

#im = Image.open("./b.png")
#im = Image.open("./d.png")
#im = Image.open("./b.jpg")

if(im.mode == 'RGBA'):
    File_Format=0
    print("image RGBA")
elif (im.mode == 'RGB'):
    File_Format=1
    print("image RGB")


    


#im = Image.open("./00/80.png")

width,height =im.size #获取图片大小
print(width,height)


width,height =im.size

for y in range(0,height):
    for x in range(0,width):
        
        r,g,b,alpla=im.getpixel((x,y))
        #r,g,b=im.getpixel((x,y))
        #print("\r\n",r,g,b,alpla)
        r=int(r*float((alpla/255)))
        g=int(g*float((alpla/255)))
        b=int(b*float((alpla/255)))
        #print("   ",r,g,b)
        #print(alpla)
        #八位转五位
        #px =hex((r>>3)<<11|(g>>2)<<5|b>>3)
        Array=(((r>>3)<<11|(g>>2)<<5|b>>3)>>8)          ##高位字节在前
        list.append((Array))                            ##将数据追加到列表
        #list.insert(x*y*2,Array)
        Array=(( ((r>>3)<<11|(g>>2)<<5|b>>3)>>0) &0xff) ##低位字节在后
        list.append((Array))                            ##将数据追加到列表
        Array=alpla
        list.append((Array))    
        #print(Array)
        #print(list[x],list[x+1])

    #写入数据到Bin文件内
binfile= open(bin_name,'wb+')
for i in  list:   
    n = struct.pack('B',i)
    binfile.write(n)
    #print(n)
    #print(str(hex(list[i]))+',')
binfile.close()

print("\r\n")
print("\r\n")
print("\r\n")
print("\r\n")
print("\r\n")

file = open("test.txt", 'w').close()


#print(list[2])

length=len(list)

for i in  range(0,length):
    #print(list[i],i)
    file= open('test.txt','a+')
    #n = struct.pack('B',i)
    file.write(str(hex(list[i]))+','+'\r')
    #print(str(hex(list[i]))+',')
    #print("\r\n")
    binfile.close()



#print(im1.getpixel((0,0)),im1.getpixel((100,100)))

#print(im.getpixel((0,0)),im.getpixel((100,100)))

#im.rotate(270).show()  
###单个图片的大小为150*150
##UNIT_SIZE = 240
##TARGET_WIDTH = 5 * UNIT_SIZE
##  
##path = "./"
##images = []
##imagefile = []
###存储所有图片文件名称
##for root, dirs, files in os.walk(path):
## for f in files:
##  images.append(f)
##  print(f)
##  
###我这里是将五张图片横向拼接
##for i in range(7):
## imagefile.append(path+'/'+images[i])
##target = Image.new('RGB',(TARGET_WIDTH, UNIT_SIZE))
##left = 0
##right = UNIT_SIZE
##for image in imagefile:
## #print(image)
## #将现有图片复制到新的上面 参数分别为图片文件和复制的位置(左上角, 右下角)
## target.paste(Image.open(image), (left, 0, right, UNIT_SIZE))
## left += UNIT_SIZE
## right += UNIT_SIZE
## #图片的质量 0~100
## quantity_value = 100
## target.save(path+'/end.jpg', quantity = quantity_value)
